// pages/profile/index.ts
Page({

  /**
   * 页面的初始数据
   */
  data: {

  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad() {
    // App里面没有用户资料才会去获取
    if (!getApp().userProfile.nickName) {
      // 获取用户资料
      this.getUserProfile()
    }
    else {
      // 直接从app里面获取
      this.setData({
        ...getApp().userProfile
      })
    }

  },
  //获取用户资料
  async getUserProfile() {
    let res = await wx.http.get('/userInfo')
    // console.log('1111', res);
    this.setData({ ...res })
    getApp().userProfile = {
      nickName: res.nickName,
      avatar: res.avatar
    }
  },
  //获取昵称
  async getUserNickname(event) {
    // console.log(event);
    // 读取到用户点击后获得昵称
    if (!event.detail.value) return //判断是否有值
    //更新event.detail.value昵称发送后台
    await wx.http.put('/userInfo', { nickName: event.detail.value })
    //提示
    wx.utils.toast('更新成功')
    //更新页面视图
    this.setData({ nickName: event.detail.value })
    getApp().userProfile.nickName = event.detail.value
  },
  // 更新用户头像
  updateAvatar({ detail }) {
    // console.log(detail.avatarUrl);
    // 调用 API 上传文件
    wx.uploadFile({
      // 接口地址
      url: wx.http.baseURL + '/upload',
      // 待上传的头像地址
      filePath: detail.avatarUrl,
      name: 'file',
      header: {
        // 用户登录状态
        Authorization: 'Bearer ' + getApp().token
      },
      formData: { type: 'avatar' },
      success: (result) => {
        console.log(result);
        // 处理返回的数据
        const res = JSON.parse(result.data)
        // 检测接口是否调用成功
        if (res.code === 10000) {
          this.setData({ avatar: res.data.url })
          getApp().userProfile.avatar = res.data.url
        } else {
          wx.utils.toast(res.message || '上传头像失败!')
        }

      },
      fail: (error) => {
        console.log(error);
      },
      complete: () => {

      }
    })
  },
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})